The inventive concepts disclosed herein pertain generally to the field of systems for operating aircraft autonomously.
A flight management system and an autopilot may be employed in conjunction with one another to operate a manned or unmanned aircraft from takeoff to landing. Known to those skilled in the art, these systems are generally operated given a known or approved flight plan connected by a series of waypoints between the departure and destination airports. These systems may relieve the pilot from having to manually fly the aircraft through a control wheel or stick, but their functionality is limited. These systems are unable to interact with or respond to other systems installed on an aircraft and have limited decision-making capability. If one or more components that comprise the flight management system and/or or autopilot fail or in any way become inoperable, these systems are unable to take action to fix themselves and are typically limited to registering and reporting of a fault condition. Although a manual effort could restore these systems to an operable condition, these may not be restorable in the absence of human control.
The autonomous operation of an aircraft could occur when the aircraft receives no manual input and no human decision-making is made in real-time. To enable the autonomous operation of an aircraft, adaptive systems could be employed in an autonomous pilot processing unit, where an adaptive system could be a system that employs an active feedback process that changes in order to maintain expected (or desired) performance, respond to failures, threats, or changing environments.
There exist formal methods for evaluation of these systems that may provide comprehensive information about system execution, represented by formal methods tools. Proofs using formal methods may provide assurance of all possible operations of a system and may be used for software verification. Autonomous behaviors may likewise be mapped to formal methods tools from which they could be verified. Part of the verification process is to determine when outcomes of execution do not fit a desired model, like deterministic or bounded behavior. This information in itself may be useful and may be used as feedback to update the model and make it verifiable.